package Abstract;

public class Java01 {
    public static void main(String[] args) {
        //抽象：被abstract修饰的类，就是抽象类
        //被abstract修饰的方法，就是抽象方法（不允许有方法体）
        //抽象类不能被创建对象的
        //A b = new  A();

//        A a = new A() {
//            @Override
//            public void test() {
//
//            }
//
//            @Override
//            public void test02() {
//
//            }
//        }
    }
}
//这是一个抽象类
abstract  class A{
    //被abstract修饰的方法，叫做抽象方法，抽象方法没有方法体
    public abstract void test();
    //成员变量
    private String name;
    static String schoolname;
    //构造方法
    public A(){

    }
    //这是一个抽象方法,不能有方法体
    public abstract void test02();
    //实例方法
    public String getName(){
        return name;
    }
    public void setName(String name){
        this.name = name;
    }
    //  抽象类可以作为父类，让子类继承，而且子类继承父类必须重写父类中的所有抽象方法
    class C extends A{

        @Override
        public void test() {

        }

        @Override
        public void test02() {

        }
    }
    //这时候，如果子类继承父类，不复写父类的抽象方法，要想不出错，这个子类也必须是抽象类
    abstract class D extends A{

    }

}
